package com.yonglian.system.mapper;

import java.util.List;
import com.yonglian.system.domain.CmsActivity;
import org.apache.ibatis.annotations.Param;

/**
 * 活动Mapper接口
 * 
 * @author gyok
 * @date 2024-05-28
 */
public interface CmsActivityMapper 
{
    /**
     * 查询活动
     * 
     * @param id 活动主键
     * @return 活动
     */
    public CmsActivity selectCmsActivityById(Long id);

    /**
     * 查询活动列表
     * 
     * @param cmsActivity 活动
     * @return 活动集合
     */
    public List<CmsActivity> selectCmsActivityList(CmsActivity cmsActivity);

    /**
     * 新增活动
     * 
     * @param cmsActivity 活动
     * @return 结果
     */
    public int insertCmsActivity(CmsActivity cmsActivity);

    /**
     * 修改活动
     * 
     * @param cmsActivity 活动
     * @return 结果
     */
    public int updateCmsActivity(CmsActivity cmsActivity);

    /**
     * 删除活动
     * 
     * @param id 活动主键
     * @return 结果
     */
    public int deleteCmsActivityById(Long id);

    /**
     * 批量删除活动
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCmsActivityByIds(String[] ids);

    /**
     * 批量删除活动
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCmsActivityByProjectIds(String[] ids);

    /**
     * 批量新增活动
     *
     * @param cmsActivityList 活动列表
     * @return 结果
     */
    public int batchInsertCmsActivity(List<CmsActivity> cmsActivityList);

    /**
     * 批量更新活动
     * @param cmsActivityList
     * @return
     */
    public int batchUpdateCmsActivity(List<CmsActivity> cmsActivityList);


    /**
     * 通过项目基础信息主键删除活动信息
     *
     * @param id 项目基础信息ID
     * @return 结果
     */
    public int deleteCmsActivityByProjectId(Long id);

    /**
     * 删除不在列表内的活动及子项
     * @param projectId
     * @param activityIdList
     * @return
     */
    public int deleteCmsActivityByNotInList(@Param("projectId") Long projectId, @Param("activityIdList") Long[] activityIdList);
}
